package IT.Servlet;

import IT.DataAccess.DatProyectoActividad;
import IT.DataAccess.DatVariable;
import IT.DataAccess.IDatProyectoActividad;
import IT.DataAccess.IDatVariable;
import IT.Entities.ProyectoActividad;
import IT.Entities.Usuario;
import IT.Entities.Variable;
import IT.Helper.GoogleApp;
import IT.Helper.Helper;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class TareaServlet extends HttpServlet {   
   
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        //PrintWriter out = response.getWriter();
        //try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet TareaServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet TareaServlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
            */
        //} finally { 
        //    out.close();
        //}
       String cAccion="",cMensaje="";
       ProyectoActividad oActividad,oTempActividad;
       
       IDatProyectoActividad oDatActividad;
       int nCodigo=0,nTipo=0,nTipoRstpa=0,nEmpleado=0,nEtiqueta=0;
       Helper oHelper=new Helper();
       GoogleApp GoogleApp;
       List<Variable> oListaVariable=new ArrayList<Variable>();
       IDatVariable oDatVariable;
       
       if(request.getSession().getAttribute("Usuario")!=null){           
       Usuario oUsuario=(Usuario)request.getSession().getAttribute("Usuario");
       oDatVariable=new DatVariable();
       oListaVariable=oDatVariable.Listar();
        
       if(request.getParameter("btnAccion")!=null){
           cAccion=request.getParameter("btnAccion").trim();
           //Insertar
           
           if(cAccion.trim().equals("Guardar")){
             
             if(request.getParameter("hdnCodigo")!=null){
                try{
                    nCodigo=Integer.parseInt(request.getParameter("hdnCodigo"));
                }catch(Exception ex){
                }
             }
             
             if(request.getParameter("txtTarea").trim().length()==0){
               cMensaje+="<li>Nombre de Tarea es obligatorio</li>";
             }else{
                if(request.getParameter("txtTarea").trim().length()<2){
                    cMensaje+="<li>Nombre de Tarea debe ser mayor o igual a 2 caracteres</li>";
                }
             }
             
             if(request.getParameter("cboNTipo").trim().length()==0){
                cMensaje+="<li>Tipo es obligatorio</li>";
             }else{                    
                try{
                    nTipo=Integer.parseInt(request.getParameter("cboNTipo").trim());
                    if(nTipo==0){
                        cMensaje+="<li>Debe seleccionar Tipo</li>";
                    }
                }catch(Exception ex){
                    cMensaje+="<li>Tipo formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("cboNTipoRspta")!=null){
                 try{
                    nTipoRstpa=Integer.parseInt(request.getParameter("cboNTipoRspta"));
                }catch(Exception ex){
                }             
             }
             
             if(request.getParameter("cboEntregable").trim().length()==0){
                cMensaje+="<li>Empleado es obligatorio</li>";
             }else{                    
                try{
                    nEmpleado=Integer.parseInt(request.getParameter("cboEntregable").trim());      
                    
                    if(nEmpleado==0){
                        cMensaje+="<li>Selecione empleado</li>";
                    }
                }catch(Exception ex){
                    cMensaje+="<li>Empleado formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("cboEtiqueta").trim().length()==0){
                cMensaje+="<li>Etiqueta es obligatorio</li>";
             }else{                    
                try{
                    nEtiqueta=Integer.parseInt(request.getParameter("cboEtiqueta").trim());                  
                    
                }catch(Exception ex){
                    cMensaje+="<li>Etiqueta formato incorrecto</li>";
                }
             }
             
             if(cMensaje.trim().length()==0){
                oActividad=new ProyectoActividad();
                oActividad.setCod_act_in(nCodigo);
                oActividad.setNom_act_vc(request.getParameter("txtTarea"));
                oActividad.setTip_act_in(nTipo);
                oActividad.setTip_rsp_act_in(nTipoRstpa);
                oActividad.setObs_act_vc(request.getParameter("txtObs"));
                oActividad.setCod_emp_in(nEmpleado);
                oActividad.setCod_sup_act_in(oUsuario.getCod_emp_in());
                oActividad.setFec_ini_act_dt(new Helper().crearFecha(request.getParameter("txtFInicio").trim()));
                oActividad.setFec_ini_act_vc(request.getParameter("txtFInicio"));
                oActividad.setFec_ent_act_dt(new Helper().crearFecha(request.getParameter("txtFFin").trim()));
                oActividad.setFec_ent_act_vc(request.getParameter("txtFFin"));               
                oActividad.setEst_act_in(6);
                oActividad.setCod_eti_in(nEtiqueta);
                oDatActividad=new DatProyectoActividad();
                if(nCodigo==0){
                    nCodigo=oDatActividad.InsertarTarea(oActividad);
                    
                    if(oHelper.RecuperaMenu("GoogleApp", oListaVariable).trim().equals("1")){
                        try{
                       
                        oDatActividad=new DatProyectoActividad();
                        oTempActividad=oDatActividad.AppInd(nCodigo);
                        
                        GoogleApp=new GoogleApp();
                        GoogleApp.RegistrarEvento(oTempActividad);
                         }catch(Exception ex){}
                    }
                    
                }else{                    
                    oDatActividad.EditarTarea(oActividad);
                    
                    if(oHelper.RecuperaMenu("GoogleApp", oListaVariable).trim().equals("1")){
                        try{
                        oDatActividad=new DatProyectoActividad();
                        oTempActividad=oDatActividad.AppInd(nCodigo);
                        
                        GoogleApp=new GoogleApp();
                        GoogleApp.Eliminar(oTempActividad);
                        GoogleApp.RegistrarEvento(oTempActividad);
                         }catch(Exception ex){}
                    }
                    
                }
                 request.getSession().setAttribute("lblMensaje","<ul><li>Se registro tarea</li></ul>"); 
                 response.sendRedirect("WebTareaNuevo.jsp?nCodigo="+String.valueOf(nCodigo).trim());  
             }else{
                
                oActividad=new ProyectoActividad();
                oActividad.setCod_act_in(nCodigo);
                oActividad.setNom_act_vc(request.getParameter("txtTarea"));
                oActividad.setTip_act_in(nTipo);
                oActividad.setTip_rsp_act_in(nTipoRstpa);
                oActividad.setObs_act_vc(request.getParameter("txtObs"));
                oActividad.setCod_emp_in(nEmpleado);
                oActividad.setFec_ini_act_vc(request.getParameter("txtFInicio"));
                oActividad.setFec_ent_act_vc(request.getParameter("txtFFin"));
                oActividad.setCod_eti_in(nEtiqueta);
                request.getSession().setAttribute("lblError","<ul>"+cMensaje+"</ul>");  
                request.getSession().setAttribute("Actividad",oActividad);  
                if(nCodigo==0){
                    response.sendRedirect("WebTareaNuevo.jsp");                
                }else{
                    response.sendRedirect("WebTareaNuevo.jsp?nCodigo="+String.valueOf(nCodigo).trim());                
                }
             }
              
           }
           
           if(cAccion.trim().equals("Guardar y Finalizar")){
               
               if(request.getParameter("hdnCodigo")!=null){
                try{
                    nCodigo=Integer.parseInt(request.getParameter("hdnCodigo"));
                }catch(Exception ex){
                }
             }
             
             if(request.getParameter("txtTarea").trim().length()==0){
               cMensaje+="<li>Nombre de Tarea es obligatorio</li>";
             }else{
                if(request.getParameter("txtTarea").trim().length()<2){
                    cMensaje+="<li>Nombre de Tarea debe ser mayor o igual a 2 caracteres</li>";
                }
             }
             
             if(request.getParameter("cboNTipo").trim().length()==0){
                cMensaje+="<li>Tipo es obligatorio</li>";
             }else{                    
                try{
                    nTipo=Integer.parseInt(request.getParameter("cboNTipo").trim());
                    if(nTipo==0){
                        cMensaje+="<li>Debe seleccionar Tipo</li>";
                    }
                }catch(Exception ex){
                    cMensaje+="<li>Tipo formato incorrecto</li>";
                }
             }
             
             if(request.getParameter("cboNTipoRspta")!=null){
                 try{
                    nTipoRstpa=Integer.parseInt(request.getParameter("cboNTipoRspta"));
                }catch(Exception ex){
                }             
             }
             
             if(request.getParameter("cboEntregable").trim().length()==0){
                cMensaje+="<li>Empleado es obligatorio</li>";
             }else{                    
                try{
                    nEmpleado=Integer.parseInt(request.getParameter("cboEntregable").trim());                        
                }catch(Exception ex){
                    cMensaje+="<li>Empleado formato incorrecto</li>";
                }
             }
               
             if(request.getParameter("cboEtiqueta").trim().length()==0){
                cMensaje+="<li>Etiqueta es obligatorio</li>";
             }else{                    
                try{
                    nEtiqueta=Integer.parseInt(request.getParameter("cboEtiqueta").trim());                        
                }catch(Exception ex){
                    cMensaje+="<li>Empleado formato incorrecto</li>";
                }
             }
             
             if(cMensaje.trim().length()==0){
                oActividad=new ProyectoActividad();
                oActividad.setCod_act_in(nCodigo);
                oActividad.setNom_act_vc(request.getParameter("txtTarea"));
                oActividad.setTip_act_in(nTipo);
                oActividad.setTip_rsp_act_in(nTipoRstpa);
                oActividad.setObs_act_vc(request.getParameter("txtObs"));
                oActividad.setCod_emp_in(nEmpleado);
                oActividad.setCod_sup_act_in(oUsuario.getCod_emp_in());
                oActividad.setFec_ini_act_dt(new Helper().crearFecha(request.getParameter("txtFInicio").trim()));
                oActividad.setFec_ini_act_vc(request.getParameter("txtFInicio"));
                oActividad.setFec_ent_act_dt(new Helper().crearFecha(request.getParameter("txtFFin").trim()));
                oActividad.setFec_ent_act_vc(request.getParameter("txtFFin"));               
                oActividad.setEst_act_in(1);
                oActividad.setCod_eti_in(nEtiqueta);
                oDatActividad=new DatProyectoActividad();
                if(nCodigo==0){
                    nCodigo=oDatActividad.InsertarTarea(oActividad);
                }else{
                    oDatActividad.EditarTarea(oActividad);
                }
                 //request.getSession().setAttribute("lblMensaje","<ul><li>Se registro tarea</li></ul>"); 
                 response.sendRedirect("WebTarea.jsp");  
             }else{
                
                oActividad=new ProyectoActividad();
                oActividad.setCod_act_in(nCodigo);
                oActividad.setNom_act_vc(request.getParameter("txtTarea"));
                oActividad.setTip_act_in(nTipo);
                oActividad.setTip_rsp_act_in(nTipoRstpa);
                oActividad.setObs_act_vc(request.getParameter("txtObs"));
                oActividad.setCod_emp_in(nEmpleado);
                oActividad.setFec_ini_act_vc(request.getParameter("txtFInicio"));
                oActividad.setFec_ent_act_vc(request.getParameter("txtFFin"));
                oActividad.setCod_eti_in(nEtiqueta);
                request.getSession().setAttribute("lblError","<ul>"+cMensaje+"</ul>");  
                request.getSession().setAttribute("Actividad",oActividad);  
                if(nCodigo==0){
                    response.sendRedirect("WebTareaNuevo.jsp");                
                }else{
                    response.sendRedirect("WebTareaNuevo.jsp?nCodigo="+String.valueOf(nCodigo).trim());                
                }
             }
           }
           
           if(cAccion.trim().equals("Cancelar")){
               response.sendRedirect("WebTareaNuevo.jsp");               
           }
           
           
       }else{
           response.sendRedirect("WebTareaNuevo.jsp");
       }
       
       }else{
            response.sendRedirect("index.jsp");
       }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
